package cn.iocoder.yudao.module.wine.service.supplyfavorite;

import java.util.*;
import javax.validation.*;

import cn.iocoder.yudao.module.wine.controller.app.supplyfavorite.vo.*;
import cn.iocoder.yudao.module.wine.dal.dataobject.supplyfavorite.SupplyFavoriteDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;

/**
 * 供求信息收藏 Service 接口
 *
 * @author 管理员
 */
public interface SupplyFavoriteService {

    /**
     * 收藏供求信息
     *
     * @param createReqVO 信息
     * @return 编号
     */
    Long createSupplyFavorite(@Valid AppSupplyFavoriteSaveReqVO createReqVO);

    /**
     * 删除供求信息收藏
     *
     * @param id 编号
     */
    void deleteSupplyFavorite(Long id);

    /**
     * 获得供求信息收藏
     *
     * @param id 编号
     * @return 供求信息收藏
     */
    SupplyFavoriteDO getSupplyFavorite(Long id);

    /**
     * 获得供求信息收藏分页
     *
     * @param pageReqVO 分页查询
     * @return 供求信息收藏分页
     */
    PageResult<SupplyFavoriteDO> getSupplyFavoritePage(AppSupplyFavoritePageReqVO pageReqVO);


    /**
     * 获得我的供求信息收藏列表
     *
     * @return 供求信息收藏列表
     */
    List<AppSupplyFavoriteRespVO> getSupplyFavoriteList(AppSupplyFavoritePageReqVO listReqVO);

    /**
     * 删除供求信息收藏
     *
     * @param supplyInfoId 编号
     */
    void deleteSupplyFavoriteBySupplyInfoId(Long supplyInfoId);

    /**
     * 获取我的收藏中的图片
     * @return
     */
    List<AppImageVO> getSupplyFavoriteImage();
}
